Identification of integrated circuits

ABSTRACT

Techniques are generally described for generating an identification number for an integrated circuit (IC). In some examples, methods for generating an identification of an IC may comprise selecting circuit elements of the IC, evaluating measurements of an attribute of the IC for the selected circuit elements, wherein individual measurements are associated with corresponding input vectors previously applied to the IC, solving a plurality of equations formulated based at least in part on the measurements taken of the attribute of the IC for the selected circuit elements to determine scaling factors for the selected circuit elements, and transforming the determined scaling factors for the selected circuit elements to generate an identification number of the IC. Additional variants and embodiments may also be disclosed.

BACKGROUND

Integrated circuits (ICs) have been used widely in a plethora ofelectronic devices. In some applications, identification andauthentication of an integrated circuit may be useful, for example, forsecurity purposes. Conventional identification and authenticationtechniques may require additional circuitry, non-volatile storage and/orfirmware to be included in an IC, which may not always be possible.

BRIEF DESCRIPTION OF THE DRAWINGS

Subject matter is particularly pointed out and distinctly claimed in theconcluding portion of the specification. The foregoing and otherfeatures of this disclosure will become more fully apparent from thefollowing description and appended claims, taken in conjunction with theaccompanying drawings. Understanding that these drawings depict onlyseveral embodiments in accordance with the disclosure and are,therefore, not to be considered limiting of its scope, the disclosurewill be described with additional specificity and detail through use ofthe accompanying drawings. Various embodiments will be describedreferencing the accompanying drawings in which like references denotesimilar elements, and in which:

FIG. 1 illustrates a method for generating an identification number (ID)for an IC;

FIG. 2 a illustrates an example table configured to store examplenominal leakage current of an example circuit element, a nominal sizedNAND gate, based at least in part on an input to the NAND gate;

FIG. 2 b illustrates a part of an example IC that may be suitable forpracticing various embodiments;

FIG. 2 c illustrates an example table configured to store scalingfactors of a plurality of NAND gates for two example ICs;

FIG. 2 d illustrates an example table configured to store total leakagecurrents in one or more circuit elements of two example ICs for variousinput vectors;

FIG. 3 a illustrates a part of an example IC that may be suitable forpracticing various embodiments;

FIG. 3 b illustrates an example table configured to store examplenominal leakage currents of NAND and NOR gates versus an input to therespective gates;

FIG. 4 illustrates a method for determining a plurality of scalingfactors of a corresponding plurality of circuit elements of an IC;

FIG. 5 illustrates a probability distribution function (PDF) of examplescaling factors of an IC;

FIG. 6 a illustrates a constant margin coding technique for coding aplurality of scaling factors in binary form;

FIG. 6 b illustrates a method for generating an identification (ID) ofan IC based at least in part on a determined plurality of scalingfactors of a corresponding plurality of circuit elements of the IC;

FIG. 7 a illustrates an equi-area coding technique for coding aplurality of scaling factors in binary form;

FIG. 7 b illustrates a method for generating an ID of an IC based atleast in part on a determined plurality of scaling factors of acorresponding plurality of circuit elements of the IC;

FIG. 8 illustrates an example plot illustrating collision probability ofIDs of ICs;

FIG. 9 illustrates an example computing system that may be suitable forpracticing various embodiments; and

FIG. 10 illustrates an example computing program product in accordancewith various embodiments; all arranged in accordance with at least someembodiments of the present disclosure.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The following description sets forth various examples along withspecific details to provide a thorough understanding of claimed subjectmatter. It will be understood by those skilled in the art, however, thatclaimed subject matter may be practiced without some or more of thespecific details disclosed herein. Further, in some circumstances,well-known methods, procedures, systems, components and/or circuits havenot been described in detail in order to avoid unnecessarily obscuringclaimed subject matter. In the following detailed description, referenceis made to the accompanying drawings, which form a part hereof In thedrawings, similar symbols typically identify similar components, unlesscontext dictates otherwise. The illustrative embodiments described inthe detailed description, drawings, and claims are not meant to belimiting. Other embodiments may be utilized, and other changes may bemade, without departing from the spirit or scope of the subject matterpresented here. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe Figures, may be arranged, substituted, combined, and designed in awide variety of different configurations, all of which are explicitlycontemplated and make part of this disclosure.

In the following description, algorithms and/or symbolic representationsof operations on data bits and/or binary digital signals stored within acomputing system, such as within a computer and/or computing systemmemory may be presented. An algorithm may generally be considered to bea self-consistent sequence of operations and/or similar processingleading to a desired result where the operations may involve physicalmanipulations of physical quantities that may take the form ofelectrical, magnetic and/or electromagnetic signals capable of beingstored, transferred, combined, compared and/or otherwise manipulated. Invarious contexts such signals may be referred to as bits, data, values,elements, symbols, characters, terms, numbers, numerals, etc. Thoseskilled in the art will recognize, however, that such terms may be usedto connote physical quantities. Hence, when terms such as “storing”,“processing”, “retrieving”, “calculating”, “determining” etc. are usedin this description they may refer to the actions/operations/functionsof a computing platform, such as a computer or a similar electroniccomputing device such as a cellular telephone, that manipulates and/ortransforms data represented as physical quantities including electronicand/or magnetic quantities within the computing platform's processors,memories, registers, etc.

This disclosure is drawn, inter alia, to methods, apparatus, systems andcomputer program products related to identification of ICs.

Generating an Identification Number of an IC

FIG. 1 illustrates a method 100 for generating an ID number of an ICincluding one or more circuit elements, in accordance with variousembodiments of the present disclosure. For the illustrated embodiments,the method 100 may include blocks 102, 104, 106 and/or 108.

At block 102, method 100 may include selecting circuit elements of theIC. As an example, an IC may have a number of circuit elements, digitallogic gates, flip-flops, transistors, resistors, capacitors, inductors,comparators, amplifiers, etc, one or more of which may be selected atblock 102.

Processing may continue from block 102 to block 104. At block 104,method 100 may include evaluating measurements of an attribute of the ICfor the selected circuit elements, wherein individual measurements areassociated with corresponding input vectors previously applied to theIC. As an example, one or more input vector may be applied to one ormore of the selected circuit elements, and corresponding measurements ofan attribute may be taken and evaluated.

Processing may continue from block 104 to block 106. At block 106,method 100 may include solving a plurality of equations formulated basedat least in part on the measurements taken of the attribute of the ICfor the selected circuit elements to determine scaling factors for theselected circuit elements.

Processing may continue from block 106 to block 108. At block 108,method 100 may include transforming the determined scaling factors forthe selected circuit elements to generate an identification number ofthe IC. Method 100 may be concluded after block 108.

Even though the manufacturing processes of integrated circuits haveadvanced tremendously in the last few decades, inherent variations maybe present during such manufacturing process. Because of suchmanufacturing variations and/or variety of other reasons (e.g., type ofmanufacturing process utilized, etc.), two similar circuit elements(e.g., one or more types of digital logic gates, flip-flops,transistors, resistors, capacitors, inductors, comparators, amplifiers,etc.) in two different ICs may have variations in one or more attributes(e.g., leakage current, delay, switching power, operating temperature,parasitic capacitance, offset voltage, gain, etc.). For example, twoNAND gates of substantially similar size and with similar inputs, andincluded in two different ICs may have different amount of leakagecurrents. Similarly, two similar circuit elements in the same IC mayhave variations in one or more attributes (e.g., capacitance,inductance, resistance, gain, offset voltage, threshold voltage,operating temperature, power consumption, idle current, leakage current,etc.).

Thus, in various embodiments, the manufacturing variability of one ormore circuit elements of an IC may be used for identification andauthentication of the IC, as will be discussed in further details hereinlater.

FIG. 2 a illustrates an example table configured to store examplenominal leakage current of an example circuit element, a nominal sizedtwo input NAND gate, based at least in part on the inputs to the NANDgate, in accordance with various embodiments. Individual rows 10 a, . .. , 10 d of the table 10 illustrates different inputs to the NAND gateand corresponding nominal leakage current (measured in nano amperes ornA) of the NAND gate. For example, for an input of 01, the nominalleakage current may be around 100.3 nA, as illustrated in row 10 b oftable 10. As illustrated, the leakage current of the NAND gate may bebased at least in part on the input to the gate.

In various embodiments, the leakage current of a circuit element (e.g.,a NAND gate) may include a subthreshold leakage (e.g., I_(sub)) and/or agate tunneling leakage (I_(gate)) for individual gates. Both currents(e.g., I_(sub) and I_(gate)) may be modeled as exponential functionsthat may be approximated by a lognormal distribution. A full-chipleakage distribution may be a sum of the lognormal distributions ofindividual gates. The sum may not be theoretically known to have aclosed form, but may be approximated as a lognormal distribution usingmethod well known to those skilled in the art.

Referring again to FIG. 2 a, the leakage currents illustrated in table10 may be the nominal or usual leakage current values of a NAND gate.However, as previously discussed, because of variations duringmanufacturing, the leakage current may vary from one NAND gate toanother. Accordingly, the nominal leakage current values illustrated intable 10 may be a typical, usual, nominal, expected, or average value ofa nominal sized NAND gate. Generation of the table 10 may beaccomplished by any reasonable method as will be understood in light ofthe present disclosure.

In various embodiments, the nominal leakage currents may be based atleast in part on an operating environment (e.g., temperature, supplyvoltage, etc.) of the NAND gate, and the nominal leakage currents oftable 10 may be for a specific operating environment. Although the table10 may illustrate nominal leakage current of a typical NAND gate,similar tables may be generated for other attributes (delay, switchingpower, etc.) of a NAND gate. Furthermore, similar tables may begenerated for one or more attributes of various other types of circuitelements (e.g., NOR gate, other logic gates, transistors, flip flops,etc.) as well.

FIG. 2 b illustrates a part of an example IC 30 suitable for practicingvarious embodiments. The IC 30 may include several circuit elements,although only four example circuit elements (four NAND gates G1, . . . ,G4) of the IC 30 is illustrated in FIG. 2 b. Also illustrated are fiveprimary inputs (i₁, . . . , i₅) to the circuit elements, example valuesof the individual primary inputs (e.g., i₁=1, i₂=0, . . . , i₅=1),various intermediate signals and the output O₁.

In various embodiments, due to a variety of reasons (e.g., variationsduring the manufacturing process), one or more attributes (e.g., leakagecurrent, delay, switching power etc.) of the individual NAND gates maybe different. In various embodiments, leakage currents of individualgates G1, . . . , G4 may be different. For example, for an input 01, thenominal leakage current of a NAND gate may be around 100.3 nA (fromtable 10), although gate G2 may have a leakage current of around 130.39nA for the same input. That is, the leakage current of gate G2 may bearound 1.3 times (e.g., 130.39/100.3 =1.3) the nominal leakage currentof a typical NAND gate for input 01. On the other hand, gate G3 may havea leakage current of, for example, around 210.63 nA for input 01. Thatis, the leakage current of gate G3 may be around 2.1 times (e.g.,210.63/100.3 =2.1) the nominal leakage current of a typical NAND gatefor input 01. In various embodiments, a scaling factor of an attributeof a circuit element may be a ratio of an actual value of the attributein the circuit element with a nominal value of the attribute. Forexample, in the above two examples, the scaling factor of the NAND gatesG2 and G3 may be 1.3 and 2.1, respectively.

FIG. 2 c illustrates an example table 50 configured to store scalingfactors of a plurality of NAND gates for two example ICs, in accordancewith various embodiments. The two ICs in table 50 may be identified asIC1 and IC2. In various embodiments, the two ICs (or a part of the twoICs) may be at least partially similar. In various embodiments, IC1and/or IC2 may have a structure similar to that illustrated in FIG. 2 b.For example, both IC1 and IC2 may include 4 NAND gates (G1, . . . , G4),similar to the IC 30 of FIG. 2 b. Individual rows 50 a, . . . , 50 d ofthe table 50 may represent the scaling factors for a NAND gate for IC1and IC2. For example, as illustrated in row 50 d, the gate G4 of IC1 andIC2 may have scaling factors of around 3 and 0.9, respectively. Asillustrated in row 10 d of table 10, the nominal leakage current forinput 11 of a typical NAND gate may be 454.5 nA. Accordingly, for input11, the leakage current of gate G4 of IC1 may be, for example, around1363.5 nA (e.g., 3*454.5 nA), and of gate G4 of IC2 may be, for example,around 409.05 nA (e.g., 0.9*454.5 nA). In another example, asillustrated in row 10 c of table 10, the nominal leakage current forinput 10 of a typical NAND gate may be around 95.7 nA. Accordingly, theleakage current of gate G2 of IC1 may be, for example, around 124.41 nA(e.g., 1.3*95.7 nA), and of gate G2 of IC2 may be, for example, around382.8 nA (e.g., 4*95.7 nA).

Although not illustrated in FIG. 2 c, in various embodiments, usingtables 10 and 50, it may be possible to determine leakage currents offour NAND gates G1, . . . , G4 of both IC1 and IC2 for individual inputs(e.g., 00, 01, 10 and/or 11) to the NAND gates.

FIG. 2 d illustrates an example table 70 configured to store totalleakage currents in one or more circuit elements of two example ICs forvarious input vectors, in accordance with various embodiments. Forexample, individual rows 70 a, . . . , 70 d of table 70 illustrates thetotal leakage currents in the four NAND gates G1, . . . , G4 of IC1 andIC2 for different values of five primary inputs (e.g., i₁, . . . , i₅).

For example, row 70 b may illustrate the total leakage currents in thefour NAND gates G1, . . . , G4 of IC1 and IC2 for input vector 10101(e.g., when i₁=1, i₂=0, . . . , i₅=1). The status of variousintermediate signals and the output is illustrated in FIG. 2 b for thisexample input vector. For example, in this case, the input to gates G1,. . . , G4 may be 10, 11, 00, and 11, respectively. In variousembodiments, consider IC2 with the example input vector of 10101. Forthis input vector, the input to gate G1 may be 10 (e.g., see FIG. 2 b),and the corresponding leakage current of gate G1 may be around 95.7*2.4nA (from rows 10 c and 50 a of tables 10 and 30, respectively) or about229.68 nA. Similarly, the input to gate G2 may be 11, and thecorresponding leakage current of gate G2 may around 454.5*0.6 nA orabout 272.7 nA. The input to gate G3 may have a value of 00, and thecorresponding leakage current of gate G3 may roughly correspond to37.84*4 nA or about 151.36 nA. The input to gate G4 may be 11, and thecorresponding leakage current of gate G4 may be around 454.5*0.9 nA orabout 409.05 nA. Accordingly, the combined leakage current of four NANDgates of IC2 for input vector 10101 may be approximately(229.68+272.7+151.36+409.05)*1 nA≈1063 nA, as illustrated in row 70 b oftable 70. The other entries of table 70 similarly illustrate the totalor combined leakage currents of the four NAND gates of IC1 and IC2 forvarious other example input vectors.

Although the tables in FIGS. 2 a, 2 c and 2 d may be directed towards anexample attribute (e.g., leakage current) of four example NAND gatesarranged according to an example configuration, in various embodiments,similar tables may be generated for various other attributes (delay,switching power, or any other appropriate attributes) of various othertypes and configurations of circuit elements (e.g., other types of logicgates, transistors, etc.).

In various embodiments, the table 70 may be generated using informationfrom, for example, tables 1 a and 1 b. In various embodiments, althoughthe nominal leakage current (e.g., as in table 10) of NAND gates may beknown in advance, the scaling factors of various NAND gates (e.g., as intable 50) in an IC may not always be known and such scaling factor maybe different for different NAND gates in the same or different ICs.

However, in various embodiments, it may be possible to measure the totalleakage current (e.g., leakage currents of table 70). From the measuredtotal leakage current, it may be possible to determine the scalingfactors of associated circuit elements. In various embodiments, usingthe determined scaling factors, it may be possible to identify andauthenticate an IC, as will be described in more details herein later.

Determining Scaling Factors of Integrated Circuits

FIG. 3 a illustrates a part of an example IC 200 suitable for practicingvarious embodiments in accordance with the present disclosure. The IC200 may include several circuit elements, although only six examplecircuit elements (three NAND gates X, Y and V, and three NOR gates U, Wand Z) of the IC 200 are illustrated in FIG. 3 a. Also illustrated aresix primary inputs (i₁, . . . , i₆) to the circuit elements, examplevalues of the individual primary inputs (e.g., {i₁, . . . , i₆}=000000),various intermediate signals, and the outputs O₁, O₂, and O₃.

FIG. 3 b illustrates an example table 240 configured to store examplenominal leakage currents of NAND and NOR gates versus an input to therespective gates, in accordance with various embodiments of the presentdisclosure. For the purpose of this disclosure and unless otherwisestated, in various embodiments, I_(ABC)(xx) may represent examplenominal leakage current in circuit element ABC, where the argumentsinside the parentheses may be an input to the circuit element. Forexample, I_(NAND)(01) and I_(NOR)(11) may represent example nominalleakage currents for a nominal sized 2-input NAND gate for input 01, andfor a nominal sized 2-input NOR gate for input 11, respectively.

As previously discussed, in various embodiments, due to a variety ofreasons (e.g., variations during the manufacturing process), one or moreattributes (e.g., leakage current, delay, switching power etc.) of theindividual circuit elements of IC 200 may be different from therespective nominal values. Accordingly, the leakage currents of one ormore NAND and/or NOR gates of FIG. 3 a may differ from the nominalleakage currents of table 240 by respective scaling factors, as earlierdiscussed herein. In various embodiments, the scaling factors of the sixgates U, V, . . . , Z illustrated in FIG. 3 a may be represented byS_(U), S_(V), . . . , S_(Z). In various embodiments, these scalingfactors may be determined based on measurement of leakage currents ofone or more gates U, V, . . . , Z.

The total leakage current of the circuit elements illustrated in FIG. 3a may be based at least in part on the inputs i₁, . . . , i₆. Theseinputs may take one of various values (e.g., {i₁, . . . , i₆}=000000,000001, 010101, or the like). For the purpose of this disclosure, theprimary inputs may form a corresponding input vector. Thus, an inputvector of 010101 may refer to an input where i₁=0, i₂=1, i₃=0, i₄=1,i₅=0, and i₆=1. In various embodiments, one or more of a plurality ofinput vectors (e.g., 000000, 010101, 111111, 101010, or the like) may beapplied to the circuit elements of IC 200.

In various embodiments, I_(leak)(.) may represent measured leakagecurrent for the six circuit elements illustrated in FIG. 3 a, whereinthe arguments inside the parentheses may be an input vector for whichthe leakage current may be measured. For example, the leakage currentI_(leak)(000000) may be the measured leakage current in the six gates ofFIG. 3 a for an input vector of 000000. In various embodiments, themeasured leakage current may have an error (denoted by e₁) due to, forexample, limitations or errors in the measurement.

In various embodiments, the measured leakage current I_(leak)(000000)may be expressed in terms of the leakage current of individual gates andthe error term e₁. For example, for input vector 000000, the input togate X may be 00, and the corresponding leakage current of gate X may beS_(X). I_(NAND)(00), where S_(X) may be unknown and the value ofI_(NAND)(00) (e.g., 37.84 nA) may be derived from row 240 a of table240. In another example, for input vector 000000, the input to gate Umay be 10, and the corresponding leakage current of gate U may be S_(U).I_(NOR)(10), wherein S_(U) may be unknown and the value of I_(NOR)(10)(e.g., 213 nA) may be derived from row 240 c of table 240. Accordingly,the leakage current I_(leak)(000000) for IC 200 may be expressed as:

I _(leak)(000000)+e ₁ =S _(X) .I _(NAND)(00)+S _(Y) .I _(NAND)(00)+S_(Z) .I _(NOR)(00)+S _(U) .I _(NOR)(01)+S _(V) .I _(NAND)(11)+S _(W) .I_(NOR)(11)   Equation 1

In various embodiments, similar equations may be formed for variousother input vectors. For example:

I _(leak)(010101)+e ₂ =S _(X) .I _(NAND)(01)+S _(Y) .I _(NAND)(01)+S_(Z) .I _(NOR)(01)+S _(U) .I _(NOR)(11)+S _(V) .I _(NAND)(11)+S _(W) .I_(NOR)(10)   Equation 2.

In various embodiments, M different equations (e.g., equations 1, . . ., M) may be formed for corresponding M different input vectors. Forexample, equation M may be:

I _(leak)(111000)+e _(i) =S _(X) .I _(NAND)(11)+S _(Y) .I _(NAND)(10)+S_(Z) .I _(NOR)(00)+S _(U) .I _(NOR)(01)+S _(V) .I _(NAND)(11)+S _(W) .I_(NOR)(11),   Equation M,

wherein equation M is for an example input vector 111000.

The individual M linear equations may represent, for a given inputvector, a linear relationship between a total measured leakage currentfor the six gates U, . . . , Z and the scaling factors S_(U), . . . ,S_(Z) of the individual gates, wherein the scaling factors may not beknown in advance. In various embodiments, an optimization problem may beformulated to determine the scaling factors S_(U), . . . , S_(Z). Forexample, equations 1, . . . , M may form the constraints of theoptimization problem. An objective function (OF) may be to optimize aspecific norm of the measurement error. For example, function ƒ(E) maydenote a function for measuring a metric of errors, whereE={e_(i)}_(i=1) ^(M), and the OF may be to minimize ƒ(E) (e.g., OF: minƒ(E)), subject to M constraints (e.g., the M equations). The term“minimize” and/or the like as used herein may include a global minimum,a local minimum, an approximate global minimum, and/or an approximatelocal minimum. Likewise, it should also be understood that the term“maximize” and/or the like as used herein may include a global maximum,a local maximum, an approximate global maximum, and/or an approximatelocal maximum.

In various embodiments, the function ƒ(.) may take one of various forms.For example, any appropriate L_(p) norm of the error function may beused for the function ƒ(.), where the L_(p) norm may be defined as:

$\begin{matrix}{{L_{p} = {{\left( {\sum\limits_{m = 1}^{M}{w_{m}{e_{m}}^{p}}} \right)^{1/p}\mspace{11mu} {for}\mspace{14mu} 1} \leq p \leq \infty}},{{{and}\mspace{14mu} L_{p}} = {{\max_{m = 1}^{M}{w_{m}{e_{m}}\mspace{14mu} {if}\mspace{14mu} p}} = \infty}},} & {{{Equation}\mspace{14mu} \left( {M + 1} \right)},}\end{matrix}$

where w_(m) may be appropriate weighing factor.

In various embodiments, the optimization problem may take many differentformats based at least in part on a form of the OF and/or the functionƒ(E). In various embodiments, the L_(p) error norms may includenon-linear terms in the OF, which may be solved using availablenonlinear optimization methods. In various embodiments, the non-linearproblem may be formulated or transformed into linear, quadratic, orconvex optimization problems, and may be solved accordingly.

For example, an L₁ norm may be used to formulate the function ƒ(E). Inthat case, the OF may be written in the form of a linear program as:

$\min {\sum\limits_{m = 1}^{M}{e_{m}}}$

The linear program may be subject to the M constraints of equations 1, .. . , M. In this case, the absolute function |e_(m)|, althoughnonlinear, may be converted to a linear form by introducing M auxiliaryvariables e_(m) ⁺, m−1, . . . , M, and adding 2M constraints (e.g., forindividual m, e_(m) ⁺≧e_(m), and e_(m) ⁺≧−e_(m)). In variousembodiments, the optimization problem may be solved using one of variousavailable linear programming techniques known to those skilled in theart, to determine one or more scaling factors S_(U), . . . , S_(Z).

In another example, an L₂ norm may be used to formulate the functionƒ(E). In that case, the OF may be given as:

$\min \sqrt{\sum\limits_{m = 1}^{M}e_{m}^{2}}$

which may be equivalent to:

$\min {\sum\limits_{m = 1}^{M}e_{m}^{2}}$

The OF may be in quadratic form, and the optimization problem may besolved using one of various available non-linear and/or quadraticprogramming techniques known to those skilled in the art, to determineone or more scaling factors S_(U), . . . , S_(Z).

In another example, an L_(∞) norm may be used to formulate the functionƒ(E). In that case, a new variable e_(max) may be formulated which maysatisfy the constraints e_(max)≦e_(m) for m=1, . . . , M. The OF may besimplified as OF=min (e_(max)), and the optimization problem may besolved using one of various available linear programming techniquesknown to those skilled in the art, to determine one or more scalingfactors S_(U), . . . , S_(Z).

In various embodiments, one or more error terms e_(i), i=1, . . . , M,may be assumed to follow independent and identically distributed(i.i.d.) Gaussian distribution N (0. σ²). In that case, a log-likelihoodfunction may be expressed as:

${\max {\sum\limits_{m = 1}^{M}{\log\left( \exp^{- \frac{e_{m}^{2}}{2\sigma^{2}}} \right)}}} \equiv {\max {\sum\limits_{m = 1}^{M}{- e_{m}^{2}}}} \equiv {\min {\sum\limits_{m = 1}^{M}e_{m}^{2}}}$

The expression may be equivalent to the previously discussed quadraticform of the OF and the optimization problem may be solved using one ofvarious available non-linear and/or quadratic programming techniquesknown to those skilled in the art, to determine one or more scalingfactors S_(U), . . . , S_(Z).

Thus, as discussed, the scaling factors S_(U), . . . , S_(Z) may bedetermined by measuring the total leakage currents I_(leak)(.) forvarious input vectors, and formulating and solving an associatedoptimization problem. In various embodiments, instead of and/or inaddition to determining scaling factors for leakage currents ofindividual gates, scaling factors of one or more other attributes may bedetermined in a similar manner. For example, scaling factors forswitching delay of individual gates and/or scaling factors for switchingpower requirement of individual gates may be determined. In variousembodiments, scaling factors of more than one attributes of one or morecircuit elements may be determined and subsequently used for generationof identification (ID) of an IC.

In various embodiments, a unique solution to one or more scaling factorsof corresponding one or more circuit elements of an IC may not alwaysexists. There may exists one or more ambiguous circuit elements forwhich determination of corresponding scaling factors may not always bepossible. Ambiguous circuit elements may refer to those circuit elementswhose combination may achieve the same ratio of scaling factors, and/orwhose scaling factors may be indistinguishable (and hence, may not beuniquely determined). For example, three inverters Inv A, Inv B, and InvC (e.g., with scaling factors S_(A), S_(B), and S_(C)) may be arrangedin series connection such that an output of Inv A is coupled to an inputof Inv B, and an output of Inv B is coupled to an input of Inv B. Forsuch an arrangement, the term(S_(A)I_(inv)(0)+S_(B)I_(inv)(1)+S_(C)I_(inv)(0)) and/or the term(S_(A)I_(inv)(1)+S_(B)I_(inv)(0)+S_(C)I_(inv)(1)) may be present in thecorresponding set of leakage current equations, where I_(inv)(.) mayrepresent the nominal leakage current of an invertor for a correspondinginput. In various embodiments, from one (or both) of these two terms, itmay not be possible to distinguish between scaling factors S_(A), S_(B)and/or S_(C) by solving the associated optimization problem, because of,for example, lack of sufficient degrees of freedom.

There may be many other examples of ambiguous circuit elements in an IC(e.g., because of reconvergent fanout). In various embodiments,ambiguous circuit elements may be taken into account while formulatingand/or solving the optimization problem associated with determination ofthe scaling factors. For example, the leakage current equations may besolved to identify one or more ambiguous circuit elements. In variousembodiments, one or more ambiguous circuit elements may be consolidatedinto one entity and/or the characteristics (e.g., scaling factors) ofone or more ambiguous circuit elements may not be used in generating anID of an IC.

FIG. 4 illustrates an example method 300 for determining a plurality ofscaling factors of a corresponding plurality of circuit elements of anIC, in accordance with various embodiments of the present disclosure. Invarious embodiments, the method 300 may include one or more of blocks304, 308, 312 and/or 316.

At block 304, method 300 may include applying a plurality of inputvectors to a plurality of circuit elements included in an IC. Forexample, a plurality of input vectors may be applied to gates U, . . . ,Z of IC 200 of FIG. 3 a. Processing may continue from block 304 to block308.

At block 308, method 300 may include measuring a plurality of values ofone or more attributes of the IC in response to applying the pluralityof input vectors, wherein an individual value of an attribute may bemeasured in response to applying a correspond input vector. Theattributes may be, for example, leakage currents, switching power,delay, and/or any other appropriate attributes. For example, aspreviously discussed, the attribute may be total leakage currentI_(leak)(.) for the six circuit elements illustrated in FIG. 3 a. For anindividual input vector, a corresponding value of the leakage currentI_(leak)(.) may be measured. Processing may continue from block 308 toblock 312.

At block 312, method 300 may be include formulating a plurality ofequations based on the corresponding plurality of measured values,wherein each of the plurality of equations may include one or morescaling factors of the corresponding one or more circuit elements. Forexample, based on the measured values of the total leakage currentI_(leak)(.), equations 1, . . . , M may be formulated. Individualequations may correspond to a measured value of the total leakagecurrent I_(leak)(.), corresponding to respective applied input vector.For example, equation 1 may be formulated based on the total leakagecurrent I_(leak)(000000), that may be measured in response to applyingthe input vector 000000, as previously discussed. In variousembodiments, PI (e.g., equal to six for the IC 200) may be a number ofprimary inputs (i1, . . . , i6) to the circuit elements underconsideration, and G (e.g., six) may the number of circuit elements(e.g., gates U, . . . , Z) under consideration. In that case, the numberof equations generated may be equal to min{2^(PI), 3G}. Processing maycontinue from block 312 to block 316.

At block 316, method 300 may include solving the plurality of equationsto determine the one or more scaling factors. For example, equations 1,. . . , M may be solved using one of several optimizations techniquesdiscussed earlier. Method 300 may be concluded after block 316.

In various embodiments, the IC may be operated such that error inmeasuring the values of one or more attributes may be relatively lowerand/or measuring the values of one or more attributes may be conductedwith relatively lower precision requirement. That is, one or moreoperating conditions (e.g., temperature of one or more circuit elements,operating voltage, etc.) of the IC may be varied to reduce the precisionrequired for measuring the values of one or more attributes. Forexample, while measuring values corresponding to leakage current, delayor switching power (e.g., while using leakage current and/or switchingpower as attribute(s)), temperature of the IC may be intentionallyincreased (e.g., using self heating), which may increase the leakagecurrent, switching delay and/or switching power of individual circuitelements of the IC, thereby decreasing sensitivity towards measurementerrors. In various embodiments where switching delay may be used as anattribute, the supply voltage to the IC may be reduced, which may resultin an increase the switching delay of individual circuit elements,thereby decreasing sensitivity towards measurement errors. As changes inthese operating conditions (e.g., change in temperature of individualcircuit elements and operating voltage) may proportionally affectindividual circuit elements for which the scaling factors may bedetermined, the scaling factors may not be affected by these changes.For example, an increase in the temperature of the six gates of FIG. 3 amay affect the leakage current of the six gates substantiallyproportionally (e.g., increase the leakage current of individual gatesby, for example, 5%). This increase in leakage current may be cancelledfrom both sides of the individual equations 1, . . . , M, thereby notaffecting the scaling factors of the individual gates.

Transforming Scaling Factors in IC Identification

In various embodiments, after determining scaling factors of one or morecircuit elements of an IC, the determined scaling factors may be used togenerate an ID of the IC. The scaling factors may be transformed into anID of the IC in a variety of ways.

In a simple example scenario, scaling factors equal to or greater than 1may be denoted by a 1 in an ID number of the IC, while scaling factorsless than 1 may be denoted by 0 in the ID number of the IC. For example,as illustrated in table 50 of FIG. 2 c, the scaling factors of gates G1,. . . , G4 of IC1 may be equal to 0.5, 1.3, 2.1 and 3, respectively.Accordingly, an example ID number of IC1 may correspond to 0111, each ofthe digits in the ID number being mapped to a respective one of thescaling factors for gates G1 . . . G4. Similarly, an ID number of IC2 oftable 50 may correspond to 1010, based on the scaling factors 2.4, 0.6,4.0 and 0.9.

The scaling factors may be transformed or mapped into an ID of the IC ina variety of other ways. Generation of the ID may be based on severalfactors. For example, the order in which the scaling factors of variouscircuit elements may be considered may affect the generation of such ID.In various embodiments, a length of an indicator string of an IC mayrefer to a number of circuit elements (e.g., number of gates) in anetlist of the design of the IC that may be used to generate the IC ID.The netlist may describe a connectivity of various circuit elements inan electronic design. In various embodiments, the order of the circuitelements in the netlist may correspond to an x and y placementcoordinates of the individual circuit elements. For example, a circuitelement with a lower x coordinate may have a lower position as comparedto a circuit element with a relatively higher x coordinate. If twocircuit elements have equal x coordinates, the circuit element withlower y coordinate may have a lower position as compared to the circuitelement with a relatively higher y coordinate. Accordingly, one or morecircuit elements may be ordered based on respective coordinates, andthis ordering of the circuit elements may be used during generation ofthe ID for the associated IC.

In various embodiments, scaling factors of every circuit elements in anIC may not be determined due, for example, to the presence of ambiguouscircuit elements, complexity in formulating and/or solving theassociated optimization problem, lack of measurement of leakage currentsof one or more circuit elements, etc. In various embodiments,characteristics of every circuit elements in an IC may not be requiredto formulate an ID of the IC. If a circuit element may be used foridentification, a corresponding bit in the indicator string may be setto 1. Similarly, if a circuit element may not be used foridentification, a corresponding bit in the indicator string may be setto 0. In various embodiments, the indicator string may represent thecircuit elements whose scaling factors may be used for generating an IDof the IC.

In various embodiments, while transforming analog scaling factors intoan ID of an IC, a variety of factors may be taken into account. Forexample, a distribution of the analog scaling factors may be taken intoaccount to select one or more scaling factors to be used for generatingthe ID and/or for converting the analog scaling factor to a digitalidentification. In various embodiments, after extracting the scalingfactors of a plurality of circuit elements of an IC, a histogram or aprobability density function (PDF) of the extracted scaling factors maybe created.

FIG. 5 illustrates a PDF 400 of example scaling factors of an IC, inaccordance with various embodiments of the present disclosure. Invarious embodiments, the example PDF 400 may have a bell shaped curvewith an example standard deviation of σ, although other shapes of thePDF may be possible. In various embodiments, the PDF 400 may be ahistogram of the extracted scaling factors, obtained after appropriatesmoothing of the histogram curve.

One of a variety of binary coding techniques may be used to transformone or more scaling factors into binary form using, for example, a PDFor a histogram of the extracted scaling factors. For example, a binarycoding technique may utilize a concept of constant margin coding and/orequi-area coding, as will be discussed below.

Constant Margin Coding

FIG. 6 a illustrates a constant margin coding technique for coding aplurality of scaling factors in binary form, in accordance with variousembodiments of the present disclosure. FIG. 6 a includes a PDF 500 ofscaling factors. The constant margin coding may find a robust binaryconversion of the analog scaling factor codes by partitioning the PDF500 into a plurality of regions or segments. In FIG. 6 a, the regionsmay be marked as either white (e.g., regions 504 a, 504 b, 504 c, etc.)or gray (e.g., regions 502 a, 502 b, 502 c, etc.). The white and darkregions may be interleaved.

In various embodiments, one or more white regions may have similarwidths, and one or more grey regions may have similar widths. In someembodiments, individual white regions may have similar widths,individual grey regions may have similar widths, and an average width ofthe white regions may be relatively more than that of the grey regions.In some additional embodiments, individual white regions and individualgrey regions may have similar widths. The number and/or width of thewhite and/or grey regions in PDF 500 are merely examples, and PDFs witha different number of regions and/or different widths of white and/orgrey regions are contemplated and within the scope of this disclosure.

In various embodiments, regions with similar color coding may either beapproved or banned during forming the ID of the IC. For example, thewhite regions 504 a, 504 b, 504 c, etc. may be approved and the greyregions 502 a, 502 b, 502 c, etc. may be banned. Thus, if the value of ascaling factor of a circuit element falls into the banned region (e.g.,region 502 b), the scaling factor may not be considered in the IDformation and a corresponding bit in the indicator string may be set to0. Similarly, if the value of a scaling factor of a circuit elementfalls into the approved region (e.g., region 504 a), the scaling factormay be considered in the ID formation and a corresponding bit in theindicator string may be set to 1.

In various embodiments, individual approved regions may be given abinary code. For example, white regions 504 a, 504 b and 504 c may begiven codes 000, 001, and 010, respectively. A scaling factor falling ina specific white region (e.g., region 504 b) may obtain a binary code ofthe respective region (e.g., 001). The binary codes of individualscaling factors falling in the approved region may be determined, whichmay form an ID of the IC.

In some embodiments, the length of the binary codes may be based atleast in part on the number of partitions. A relatively large number ofpartitions (e.g., with smaller region width) may increase the length ofthe IC ID, but may decrease a robustness of the binary codes. Thus, thenumber of partitions may provide a trade of between the length of theIDs and robustness of the binary codes.

FIG. 6 b illustrates a method 520 for generating an ID of an IC based atleast in part on a determined plurality of scaling factors of acorresponding plurality of circuit elements of the IC, in accordancewith various embodiments of the present disclosure. In variousembodiments, the plurality of scaling factors may be determined using,for example, method 300 of FIG. 4.

Referring to FIGS. 6 a and 6 b, in various embodiments, method 520 mayinclude one or more of blocks 524, 528, 532, 536, 540, 544, 548 and/or552.

At block 524, method 520 may include generating a PDF (e.g., PDF 500 ofFIG. 6 a) of the plurality of scaling factors.

Processing may continue from block 524 to block 528, which may includepartitioning an area under the PDF into a plurality of segments suchthat individual segments have substantially equal width. For example, asillustrated in FIG. 6 a, the area under the PDF 500 may be divided intoa plurality of segments 520 a, . . . , 502 c, 504 a, . . . , 504 c, etc.such that individual segments may have substantially equal width.Processing may continue from block 528 to block 532.

At block 532, method 520 may include dividing the plurality of segmentsinto a first set (e.g., the white segments 504 a, . . . , 504 c) and asecond set (e.g., the grey segments 502 a, . . . , 502 c) of segments,such that individual segments of the first set of segments andindividual segments of the second set of segments are interleaved (e.g.,individual white and grey segments are interleaved). Processing maycontinue from block 532 to block 536.

At block 536, method 520 may include selecting one or more scalingfactors that fall in one or more segments of the first set of segments.For example, one or more scaling factors that fall in one or moresegments of the white segments may be selected for generating ID of theIC. In various embodiments, in an indicator string, a bit correspondingto a selected scaling factors may be set to one, as previouslydiscussed. Processing may continue from block 536 to block 540.

At block 540, method 520 may include assigning binary codes to theindividual segments in the first set of segments such that eachindividual segment in the first set of segments is associated with arespective one of the binary codes. For example, white segments 504 a,504 b and 504 c may be assigned binary code 000, 001 and 101,respectively. Processing may continue from block 540 to block 544.

At block 544, method 520 may include assigning binary codes to thescaling factors included in the individual segments of the first set ofsegments based on the binary codes assigned to the individual segments.For example, individual scaling factors included in the segment 504 bmay be assigned binary code 001. Processing may continue from block 544to block 548.

At block 548, method 520 may include mapping individual scaling factorsof the one or more selected scaling factors into corresponding binarycodes. For example, the assignment of binary codes to individualselected scaling factors at block 544 may be a part of the mapping atblock 548. Processing may continue from block 548 to block 552.

At block 552, method 520 may include generating the ID number of the ICusing the mapped binary codes. Method 520 may be concluded after block552.

Equi-Area Coding

FIG. 7 a illustrates an equi-area coding technique for coding aplurality of scaling factors in binary form, in accordance with variousembodiments. FIG. 7 a includes a PDF 600 of the scaling factors. Theequi-area coding may find a robust binary conversion of the analogscaling factor codes by partitioning area under the PDF curve 600 into aplurality of segments or regions (e.g., regions 604 a, 604 b, 604 c, 604d, etc.). In various embodiments, the regions may be portioned in such away that area under the PDF curve of individual regions may besubstantially equal. Thus, the probability of a scaling factor belongingto any one of the regions may be substantially similar. In the exampleportioning of FIG. 7 a, the PDF 600 may be portioned in 8 regions,although a different number of regions may be possible. In variousembodiments, individual regions may be assigned a binary bit code. Forexample, for an 8 region partition, a 3-bit code may be used to identifyindividual regions, as illustrated in FIG. 7 a (e.g., region 604 b maybe assigned 101).

In some embodiments, one or more (or all) regions in FIG. 7 a may beused for generation of ID of an IC. Scaling factor falling in a specificregion (e.g., region 604 b) may obtain a binary code of the respectiveregion (e.g., 101). The binary codes of individual scaling factors maybe determined, which may form an ID of the IC.

In some additional embodiments, because of a variety of factors (e.g.,measurement errors, error in determining the scaling factors, etc.), ascaling factor that is supposed to be in a region (e.g., region 604 b,with code 101) may actually fall in an adjacent region (e.g., region 604a or 604 c). In some embodiments, a robustness of the ID may be achievedby taking into account the order of segments during verification orauthentication of the ID of the IC. For example, changing the value of ascaling factor by a relatively small amount may translate into shiftingthe scaling factor to a previous or a next region of FIG. 7 a. Theencoding scheme may take into account such changes. For example, thescaling factor of a gate may fall in region 604 b and may be encoded as101. For ID verification, the scaling factor of the same gate may beconsidered to be equal to any gate that may have codes 100, 101, or 111.Accordingly, the assigned ID may be robust against small variations in ascaling factor, as long as the scaling factor stays in the intendedregion (e.g., region 604 b) or in an adjacent region (e.g., regions 604a or 604 c).

FIG. 7 b illustrates a method 620 for generating an ID of an IC based atleast in part on a determined plurality of scaling factors of acorresponding plurality of circuit elements of the IC, in accordancewith various embodiments of the present disclosure. In variousembodiments, the plurality of scaling factors may be determined using,for example, method 300 of FIG. 4. Referring to FIGS. 7 a and 7 b, invarious embodiments, method 620 may include one or more of blocks 624,628, 632, 636 and/or 640.

At block 624, method 620 may include generating a PDF (e.g., PDF 600 ofFIG. 7 a) of the plurality of scaling factors. Processing may continuefrom block 624 to block 628.

At block 628, method 620 may include partitioning an area under the PDFinto a plurality of segments (e.g., segments 604 a, . . . , 604 d, etc.)such that individual segments may have substantially equal area.Processing may continue from block 628 to block 632.

At block 632, method 620 may include assigning binary codes to theindividual segments such that each individual segment is associated witha respective one of the binary codes (e.g., assigning binary code 101 tosegment 604 b). Processing may continue from block 632 to block 636.

At block 636, method 620 may include assigning binary codes to thescaling factors included in the individual segments based on the binarycodes assigned to the individual segments. For example, individualscaling factors included in the segment 604 b may be assigned binarycode 101. In various embodiments, the assignment of the binary codes toindividual scaling factors may map the scaling factors intocorresponding binary codes. Processing may continue from block 636 toblock 640.

At block 640, method 620 may include generating the ID number of the ICusing the assigned binary codes. Method 620 may be concluded after block640.

Probabilistic Analysis of Collision of IDs

Once the ID may be generated, a robustness (e.g., the probability of thegenerated ID being unique) of the generated ID may be analyzed. Invarious embodiments, the generated ID may include a collection of Kbinary sequences, with individual sequences of length M. For example, Kscaling factors may be used to generate binary codes, wherein individualbinary codes may be of length M (e.g., 3). The probability of more thanone IC having the same ID may be equated to the probability of collisionamong the K strings. In various embodiments, there may be a total ofn=2^(M) binary length M sequences. The variable Pi may denote aprobability that the ID of the IC may be in sequence i, and let P=(P1, .. . , Pn) be the collection of probabilities of all n sequences.

The probability of no match between K sequences may be given by:

${P\left( {M,K,n^{- 1}} \right)} = \frac{2^{M}!}{{K^{2M}\left( {2^{M} - K} \right)}!}$

The probability of collision may be given by:

${P({collision})} = {1 - \frac{2^{M}!}{{K^{2M}\left( {2^{M} - K} \right)}!}}$

When the sequences may not be equally likely, probability of collisionmay be given by:

$\begin{matrix}\begin{matrix}{{P({collision})} = {1 - {P\left( {M,K,P} \right)}}} \\{{= {1 - {{K!}{\sum\limits_{1 \leq {v\; 1} \leq K \leq {vk} \leq n}{P_{v\; 1}P_{v\; 2K}P_{vK}}}}}},}\end{matrix} & {{Equation}\mspace{14mu} \left( {M + 2} \right)}\end{matrix}$

where P(M,K,P) may be the complimentary probability that no collisionoccurs. This equation may represent the collision probability of theIDs. This probability may be based at least in part on the formulationof the ID generation problem.

For example, in a first case, the bit in the sequence of the generatedID may be independent and identically distributed (i.i.d.) with P(anybit is 1)=π, and P(any bit is 0)=1−π. In that case, the probability Pimay be given by P_(i)=(1−π)^(n) 0 ^(i)π^(n) ¹ ^(i), where n₀i may denotethe total number of zeros in sequence i and n₁i may denote the totalnumber of its ones in the sequence i.

In a second case, the bits in individual sequences may be independentbut not identically distributed with:

P(bit m is 1)=π_(m)

P(bit m is 0)=1−π_(m)

The function I(b_(m)) may be defined as:

${I\left( b_{m} \right)} = \left\{ \begin{matrix}{\pi_{m},} & {b_{m} = 1} \\{{1 - \pi_{m}},} & {b_{m} = 0.}\end{matrix} \right.$

The probability P_(i) may be represented as:

P _(i)=Π_(m=1) ^(M) I(b _(m)).

In a third case, the bits in individual sequences may be correlated andtheir cumulative distribution function (CDF) may be P, as previouslydiscussed.

In various embodiments, if the collision probability (e.g., probabilitythat IDs of two ICs may be similar) is substantially higher (e.g.,higher than a threshold value), a more robust ID (e.g., an ID that mayhave relatively less collision probability) may be created. For example,the circuit elements selected for generating the ID may be increased,the length of the ID may be increased (e.g., by increasing the number ofscaling factors to be considered for generating the ID), and/or thenumber of attributes to be used may be increased.

Statistical Analysis of Collision of IDs

FIG. 8 illustrates an example plot 700 illustrating collisionprobability of IDs of ICs, in accordance with various embodiments of thepresent disclosure. The plot may be generated, for example, using MonteCarlo simulations. The analog values of two scaling factors (e.g.,characteristics A and characteristics B) of corresponding circuitelements are illustrated in plot 700. The extracted analog scalingfactors of individual circuit elements may be used as an axis in theplot.

Although only two scaling factors are used herein to generate plot 700,more than two scaling factors may be used to generate such plots(although such plots may have higher dimensions). For example, M′ numberof characteristics (e.g., M′ number of scaling factors) may result in aM′ dimensional space.

In various embodiments, there may be K number of ICs, wherein M′ numberof scaling factors of individual ICs may be considered to generate an IDof the respective IC. A probability of collision of the IDs (e.g.,probability that more than one IC have the same ID) may be computed. Forcomputing the collision probability, a sphere in the M′ dimensions maybe positioned multiple times (e.g., 10 two-dimensional spheres 702 a, .. . , 702 c, etc. in FIG. 8). The center of individual spheres mayrepresent the position of an ID. The points that fall within one circlemay be assigned the same IDs (e.g., points 704 a and 704 b fallingwithin one circle 702 a). Since the experiment (e.g., circle generation)may be repeated multiple times, the number of possible points insideindividual circle may be counted because of finite resolution ofmeasurements.

The probability of collision for the whole space may be calculated as:

${P({collision})} = {\sum\limits_{n = 1}^{N_{MC}}{{P\left( {collision} \middle| C_{n} \right)}{P\left( C_{n} \right)}}}$

N_(MC) may denote the number of Monte Carlo simulation runs, n may bethe index of individual simulations, and C_(n) may be the generatedspheres for one simulation run. The parameters of the Monte Carloanalysis may be the radius of the sphere and the number of random runs(N_(MC)).

In various embodiments, if the collision probability (e.g., probabilitythat IDs of two ICs may be similar) is substantially higher (e.g.,higher than a threshold value), a more robust ID (e.g., an ID that mayhave relatively less collision probability) may be created. For example,the length of the ID may be increased (e.g., by increasing the number ofscaling factors to be considered for generating the ID) and/or thenumber of attributes to be used may be increased.

The generated scaling factors and the ID of an IC may be used innumerous applications. For example, scaling factors of one or moreattributes of a plurality of circuit elements may be generated, and thegenerated scaling factors may be utilized to improve an operatingcondition of an IC. For example, the scaling factors may indicateleakage currents of one or more circuit elements in the IC. In variousembodiments, during an operation of the IC, the input vectors may beselected such that the leakage current of the IC is reduced. Forexample, a circuit element which may be identified (from a correspondingscaling factor) to have a higher leakage current may be used relativelyless frequently (or for a less duration of time or clock periods)compared to a circuit element having a relatively lower leakage current.Such selective use of the circuit elements may be achieved, for example,by appropriately choosing the input vector.

In various embodiments, input vectors or a schedule of a data assignmentmay be determined such that adverse effects of one or more otherattributes (e.g., switching delay, switching power, operatingtemperature, parasitic capacitance, offset voltage, gain) may bereduced. Reduction of one or more of these attributes may result in, forexample, improved power and thermal management, improved operatingcondition, prolonged operating life, etc. of the IC. In variousembodiments, an operational voltage for a task to be executed on the ICwithin a given duration of time may also be determined, such that atotal leakage current, temperature, parasitic capacitance or speed ofaging of the IC is reduced. Such determination may be based at least inpart on the scaling factors of one or more circuit elements.

In various embodiments, an ID and/or the scaling factors of an IC may beused to authenticate the IC. For example, an ID of an IC (or scalingfactors of one or more circuit elements of the IC) may be unique. Invarious embodiments, the IC may authenticate itself to a device (e.g., aserver, a device responsible for authenticating, etc.) using the IC'sunique ID (or scaling factors of one or more circuit elements of theIC). The device may challenge an identification of the IC by initiatingan application of one or more input vectors to one or more of thecircuit elements included in the IC. In response to the applied inputvectors, the device may measure one or more response values, wherein theresponse values may include indication of one or more operationalcharacteristics (e.g., leakage current, switching delay, switchingpower, operating temperature, parasitic capacitance, offset voltage,gain) of the circuit elements. The response values may be associatedwith the scaling factors of the circuit elements. The device may comparethe received response values with response values stored in a databaseexternal to the IC. Based on the comparison, the device may authenticatethe IC. In various embodiments, the device may grant the IC or a user ofthe IC access or operational rights to one or more services or devices,based at least in part on authenticating the IC.

For example, a car key may have an IC embedded in it. Each time the carkey is inserted in a car (with which the car key is associated), anauthentication device in the car may apply input vectors to the IC inthe car key, and receive response values, where the response values mayinclude indication of one or more operational characteristics of the oneor more circuit elements of the IC. The authentication device maycompare the response values with response values stored in a databaseaccessible to the authentication device, and authenticate the IC basedon a positive comparison. Once the IC is authenticated, theauthentication device may, for example, allow the user of the car key tostart the car.

In various embodiments, the ID and/or the scaling factors of an IC maybe used in many other security and authentication applications, e.g.,for getting access to blocked television channels, authorizing a creditcard sale, or the like.

Computing System

FIG. 9 illustrates an example computing system 900 that may be suitablefor practicing various embodiments of the present disclosure. Computingsystem 900 may comprise processor 910 and memory 914. Computing system900 may also include one or more data models and/or computation modulesconfigured to practice one or more methods of this disclosure. Forexample, the computing system 900 may include a scaling factordetermination module 920 configured to determine scaling factors of anIC 960 that is operatively coupled with the computing system 900. Thescaling factor determination module 920 may also include an input vectorapplication module 924 configured to select and apply or cause to beapplied a plurality of input vectors to one or more circuit elements inthe IC 960. In various embodiments, the input vector application module924 may be configured to instruct other components (in the computingsystem 900 and/or on IC 960) to apply the input vectors to the one ormore circuit elements.

The scaling factor determination module 920 may also include ameasurement module 928 that may be arranged to measure or causemeasurements to be taken of one or more attributes (e.g., leakagecurrent I_(leak)(.)) of the IC 960. In various embodiments, themeasurement module 928 may be adapted to receive such measurements fromthe IC 960. The scaling factor determination module 920 may also includea equation formulation module that may be configured to form one or moreequations (e.g., equations 1, . . . , M) based at least in part on themeasurements of one or more attributes. The scaling factor determinationmodule 920 may also include a solver module 934 configured to formulateand solve an optimization problem to determine one or more scalingfactors of one or more corresponding circuit elements in the IC 960.

In various embodiments, the computing system 900 may include a scalingfactor transformation and ID generation module 940 configured totransform the determined scaling factors into an ID of IC 960. Invarious embodiments, the computing system 900 may include a collisionprobability estimation module 944 configured to estimate a collisionprobability of generated ID.

Although various modules of the computing system 900 may be illustratedas being separate blocks, in various embodiments, some or all of themodules may be combined into different blocks. In various embodiments,one or more of the illustrated modules may also be included in a secondcomputing system (separate from the computing system 900), that may bepartially similar and/or partially different from the computing system900. In various embodiments, one or more of the illustrated modules maybe included in the IC 960.

The computing system 900 may also be coupled to an external storagefacility 980, which may be configured for storing data. In variousembodiments, the computing system 900 may be operatively coupled to anetwork 984, through which the computing system 900 may be operativelycoupled to the storage facility 980 and/or to one or ore other computingsystems (not illustrated in FIG. 9). In various embodiments, thecomputing system 900 may store data (e.g., one or more tables previouslydiscussed) in the storage facility 980. Although not illustrated in FIG.9, in various embodiments, the computing system 900 may access, over thenetwork 984, the IC 960 and/or a testing device (not illustrated in FIG.9) operatively coupled to the IC 960 and configured to perform one ormore tests on the IC 960.

In some embodiments, processor 910 may be a general-purpose processor.In some other embodiments, processor 910 may be an Application-specificIntegrated Circuit (ASIC), a field-programmable gate array (FPGA), orsome other logic device having specific functions built or programmeddirectly into it.

Memory 914 may be a hard drive, solid-state drive, Random Access Memory(RAM), or some other appropriate type of memory. In various embodiments,a plurality of programming instructions may be stored within memory 914or other memory and configured to program processor 910 to function inaccordance with various features (e.g., methods, procedures, functions,operations and/or modules) of the present disclosure.

Although not illustrated in FIG. 9, the computing system 900 may includeone or more components known to those skilled in the art. For example,the computing system 900 may include one or more appropriate drives,storage media, user input devices through which a user may entercommands and data (e.g., an electronic digitizer, a microphone, akeyboard and pointing device, commonly referred to as a mouse,trackball, touch pad, joystick, game pad, satellite dish, scanner, orthe like), one or more interfaces (e.g., a parallel port, game port, auniversal serial bus (USB) interface), etc. and may be coupled to one ormore peripherals (e.g., a speaker, a printer, etc.). The computer system900 may operate in a networked environment (e.g., wide area networks(WAN), local area networks (LAN), intranets, the Internet, etc.) usinglogical connections to one or more computers, such as a remote computer(e.g., a personal computer, a server, a router, a network PC, a peerdevice or other common network node, etc.) connected to a networkinterface.

FIG. 10 illustrates an example computing program product 1001 arrangedin accordance with various embodiments of the present disclosure. Invarious embodiments, computing program product 1001 may comprise asignal bearing medium 1003 having programming instructions storedtherein. In various embodiments, the signal bearing medium 1003 mayinclude a computer readable medium 1007, including but not limited to aCD, a DVD, a solid-state drive, a hard drive, computer disks, flashmemory, or other appropriate type of computer readable medium. Invarious embodiments, the signal bearing medium 1003 may also include arecordable medium 1009, including but not limited to a floppy disk, ahard drive, a CD, a DVD, a digital tape, a computer memory, a flashmemory, or other appropriate type of computer recordable medium. Invarious embodiments, the signal bearing medium 1003 may include acommunications medium 1011, including but not limited to a fiber opticcable, a waveguide, a wired or wireless communications link, etc.

The computing programming product 1001 may be, for example, used fordetermining one or more scaling factors of one or more circuit elementsincluded in an IC that may be coupled to the computing product 1001and/or for generating an ID for the IC. Embodiments are not limited toany type or types of computing program products.

Signal bearing medium 1003 may contain one or more instructions 1005configured to practice one or more aspects of the present disclosure.Embodiments may have some or all of the instructions depicted in FIG.10. Embodiments of computing program product 1001 may have otherinstructions in accordance with embodiments described within thisspecification.

In some embodiments, the one or more instructions 1005 may includeinstructions for applying a plurality of input vector to one or morecircuit elements included in an IC. In various embodiments, the one ormore instructions 1005 may include instructions for measuring aplurality of values of one or more attributes of the IC in response tothe applying the plurality of input vectors, wherein an individual valueof an attribute is measured in response to applying a correspond inputvector. In some embodiments, the one or more instructions 1005 mayinclude instructions for formulating a plurality of equations based onthe corresponding plurality of measured values, wherein individualequations includes one or more scaling factors of the corresponding oneor more circuit elements. In various embodiments, the one or moreinstructions 1005 may include instructions for solving the plurality ofequations to determine the one or more scaling factors. In someembodiments, the one or more instructions 1005 may include instructionsfor transforming the determined one or more scaling factors to generatean identification number of the IC. In various embodiments, the one ormore instructions 1005 may include instructions for evaluating acollision probability of the generated identification. In someembodiments, the one or more instructions 1005 may include instructionsfor determining a plurality of scaling factors of a correspondingplurality of circuit elements of the IC, by solving a plurality ofequations formulated based at least in part on a corresponding pluralityof measurements taken of an attribute of the IC by applying or havingapplied a corresponding plurality of input vectors to the IC. In variousembodiments, the one or more instructions 1005 may include instructionsfor transforming the determined scaling factors to generate anidentification number of the IC.

Claimed subject matter is not limited in scope to the particularimplementations described herein. For example, some implementations maybe in hardware, such as employed to operate on a device or combinationof devices, for example, whereas other implementations may be insoftware and/or firmware. Likewise, although claimed subject matter isnot limited in scope in this respect, some implementations may includeone or more articles, such as a storage medium or storage media. Thisstorage media, such as CD-ROMs, computer disks, flash memory, or thelike, for example, may have instructions stored thereon, that, whenexecuted by a system, such as a computer system, computing platform, orother system, for example, may result in execution of a processor inaccordance with claimed subject matter, such as one of theimplementations previously described, for example. As one possibility, acomputing platform may include one or more processing units orprocessors, one or more input/output devices, such as a display, akeyboard and/or a mouse, and one or more memories, such as static randomaccess memory, dynamic random access memory, flash memory, and/or a harddrive.

Reference in the specification to “an implementation,” “oneimplementation,” “some implementations,” or “other implementations” maymean that a particular feature, structure, or characteristic describedin connection with one or more implementations may be included in atleast some implementations, but not necessarily in all implementations.The various appearances of “an implementation,” “one implementation,” or“some implementations” in the preceding description are not necessarilyall referring to the same implementations. Moreover, when terms orphrases such as “coupled” or “responsive” or “in response to” or “incommunication with”, etc. are used herein or in the claims that follow,these terms should be interpreted broadly. For example, the phrase“coupled to” may refer to being communicatively, electrically and/oroperatively coupled as appropriate for the context in which the phraseis used.

In the preceding description, various aspects of claimed subject matterhave been described. For purposes of explanation, specific numbers,systems and/or configurations were set forth to provide a thoroughunderstanding of claimed subject matter. However, it should be apparentto one skilled in the art and having the benefit of this disclosure thatclaimed subject matter may be practiced without the specific details. Inother instances, well-known features were omitted and/or simplified soas not to obscure claimed subject matter. While certain features havebeen illustrated and/or described herein, many modifications,substitutions, changes and/or equivalents will now, or in the future,occur to those skilled in the art. It is, therefore, to be understoodthat the appended claims are intended to cover all such modificationsand/or changes as fall within the true spirit of claimed subject matter.

There is little distinction left between hardware and softwareimplementations of aspects of systems; the use of hardware or softwareis generally (but not always, in that in certain contexts the choicebetween hardware and software may become significant) a design choicerepresenting cost vs. efficiency tradeoffs. There are various vehiclesby which processes and/or systems and/or other technologies describedherein may be effected (e.g., hardware, software, and/or firmware), andthat the preferred vehicle will vary with the context in which theprocesses and/or systems and/or other technologies are deployed. Forexample, if an implementer determines that speed and accuracy areparamount, the implementer may opt for a mainly hardware and/or firmwarevehicle; if flexibility is paramount, the implementer may opt for amainly software implementation; or, yet again alternatively, theimplementer may opt for some combination of hardware, software, and/orfirmware.

The foregoing detailed description has set forth various embodiments ofthe devices and/or processes via the use of block diagrams, flowcharts,and/or examples. Insofar as such block diagrams, flowcharts, and/orexamples contain one or more functions and/or operations, it will beunderstood by those within the art that individual function and/oroperation within such block diagrams, flowcharts, or examples may beimplemented, individually and/or collectively, by a wide range ofhardware, software, firmware, or virtually any combination thereof. Inone embodiment, several portions of the subject matter described hereinmay be implemented via Application Specific Integrated Circuits (ASICs),Field Programmable Gate Arrays (FPGAs), digital signal processors(DSPs), or other integrated formats. However, those skilled in the artwill recognize that some aspects of the embodiments disclosed herein, inwhole or in part, may be equivalently implemented in integratedcircuits, as one or more computer programs running on one or morecomputers (e.g., as one or more programs running on one or more computersystems), as one or more programs running on one or more processors(e.g., as one or more programs running on one or more microprocessors),as firmware, or as virtually any combination thereof, and that designingthe circuitry and/or writing the code for the software and or firmwarewould be well within the skill of one of skill in the art in light ofthis disclosure. In addition, those skilled in the art will appreciatethat the mechanisms of the subject matter described herein are capableof being distributed as a program product in a variety of forms, andthat an illustrative embodiment of the subject matter described hereinapplies regardless of the particular type of signal bearing medium usedto actually carry out the distribution. Examples of a signal bearingmedium include, but are not limited to, the following: a recordable typemedium such as a floppy disk, a hard disk drive, a Compact Disc (CD), aDigital Video Disk (DVD), a digital tape, a computer memory, etc.; and atransmission type medium such as a digital and/or an analogcommunication medium (e.g., a fiber optic cable, a waveguide, a wiredcommunications link, a wireless communication link, etc.).

Those skilled in the art will recognize that it is common within the artto describe devices and/or processes in the fashion set forth herein,and thereafter use engineering practices to integrate such describeddevices and/or processes into data processing systems. That is, at leasta portion of the devices and/or processes described herein may beintegrated into a data processing system via a reasonable amount ofexperimentation. Those having skill in the art will recognize that atypical data processing system generally includes one or more of asystem unit housing, a video display device, a memory such as volatileand non-volatile memory, processors such as microprocessors and digitalsignal processors, computational entities such as operating systems,drivers, graphical user interfaces, and applications programs, one ormore interaction devices, such as a touch pad or screen, and/or controlsystems including feedback loops and control motors (e.g., feedback forsensing position and/or velocity; control motors for moving and/oradjusting components and/or quantities). A typical data processingsystem may be implemented utilizing any suitable commercially availablecomponents, such as those typically found in datacomputing/communication and/or network computing/communication systems.

The herein described subject matter sometimes illustrates differentcomponents contained within, or connected with, different othercomponents. It is to be understood that such depicted architectures aremerely exemplary, and that in fact many other architectures may beimplemented which achieve the same functionality. In a conceptual sense,any arrangement of components to achieve the same functionality iseffectively “associated” such that the desired functionality isachieved. Hence, any two components herein combined to achieve aparticular functionality may be seen as “associated with” each othersuch that the desired functionality is achieved, irrespective ofarchitectures or intermedial components. Likewise, any two components soassociated may also be viewed as being “operably connected”, or“operably coupled”, to each other to achieve the desired functionality,and any two components capable of being so associated may also be viewedas being “operably couplable”, to each other to achieve the desiredfunctionality. Specific examples of operably couplable include but arenot limited to physically mateable and/or physically interactingcomponents and/or wirelessly interactable and/or wirelessly interactingcomponents and/or logically interacting and/or logically interactablecomponents.

With respect to the use of substantially any plural and/or singularterms herein, those having skill in the art may translate from theplural to the singular and/or from the singular to the plural as isappropriate to the context and/or application. The varioussingular/plural permutations may be expressly set forth herein for sakeof clarity.

It will be understood by those within the art that, in general, termsused herein, and especially in the appended claims (e.g., bodies of theappended claims) are generally intended as “open” terms (e.g., the term“including” should be interpreted as “including but not limited to,” theterm “having” should be interpreted as “having at least,” the term“includes” should be interpreted as “includes but is not limited to,”etc.). It will be further understood by those within the art that if aspecific number of an introduced claim recitation is intended, such anintent will be explicitly recited in the claim, and in the absence ofsuch recitation no such intent is present. For example, as an aid tounderstanding, the following appended claims may contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimrecitations. However, the use of such phrases should not be construed toimply that the introduction of a claim recitation by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim recitation to inventions containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should typically be interpreted to mean “atleast one” or “one or more”); the same holds true for the use ofdefinite articles used to introduce claim recitations. In addition, evenif a specific number of an introduced claim recitation is explicitlyrecited, those skilled in the art will recognize that such recitationshould typically be interpreted to mean at least the recited number(e.g., the bare recitation of “two recitations,” without othermodifiers, typically means at least two recitations, or two or morerecitations). Furthermore, in those instances where a conventionanalogous to “at least one of A, B, and C, etc.” is used, in generalsuch a construction is intended in the sense one having skill in the artwould understand the convention (e.g., “a system having at least one ofA, B, and C” would include but not be limited to systems that have Aalone, B alone, C alone, A and B together, A and C together, B and Ctogether, and/or A, B, and C together, etc.). In those instances where aconvention analogous to “at least one of A, B, or C, etc.” is used, ingeneral such a construction is intended in the sense one having skill inthe art would understand the convention (e.g., “a system having at leastone of A, B, or C” would include but not be limited to systems that haveA alone, B alone, C alone, A and B together, A and C together, B and Ctogether, and/or A, B, and C together, etc.). It will be furtherunderstood by those within the art that virtually any disjunctive wordand/or phrase presenting two or more alternative terms, whether in thedescription, claims, or drawings, should be understood to contemplatethe possibilities of including one of the terms, either of the terms, orboth terms. For example, the phrase “A or B” will be understood toinclude the possibilities of “A” or “B” or “A and B.”

1. A method for a computing device to generate an identification numberof an integrated circuit (IC) including circuit elements, the methodcomprising: selecting circuit elements of the IC; evaluatingmeasurements of an attribute of the IC for the selected circuitelements, wherein individual measurements are associated withcorresponding input vectors previously applied to the IC; solving aplurality of equations formulated based at least in part on themeasurements taken of the attribute of the IC for the selected circuitelements to determine scaling factors for the selected circuit elements;and transforming the determined scaling factors for the selected circuitelements to generate an identification number of the IC.
 2. The methodof claim 1, wherein solving the plurality of equation comprises solvingthe plurality of equations formulated further based on additionalmeasurements of another attribute of the IC for the selected circuitelements.
 3. The method of claim 2, wherein the attribute and theanother attribute include two of a leakage current, a delay, a switchingpower, a parasitic capacitance, an inductance, a resistance, a gain, anoffset voltage, a threshold voltage, an operating temperature, a powerconsumption, or an idle current.
 4. The method of claim 1, whereinsolving the plurality of equation comprises solving the plurality ofequations further including a corresponding error term based at least inpart on an error in the measurements.
 5. The method of claim 4, whereinsolving the plurality of equations further comprises: formulating anoptimization problem that includes an objective function that reduces anorm of the error terms of the plurality of equations.
 6. The method ofclaim 1, wherein transforming the determined scaling factors furthercomprises: selecting one or more of the scaling factors; mapping the oneor more selected scaling factors into corresponding binary codes; andgenerating the identification number of the IC using the mapped binarycodes for the selected scaling factors.
 7. The method of claim 1,wherein transforming comprises: generating a probability distributionfunction (PDF) of the scaling factors; partitioning an area under thePDF into individual segments such that each of the individual segmentshave approximately equal area; assigning binary codes to the individualsegments such that each individual segment is associated with arespective one of the binary codes; assigning binary codes to theindividual scaling factors included in the individual segments based onthe binary codes assigned to the individual segments; and generating theidentification number of the IC using the binary codes assigned to theindividual scaling factors.
 8. The method of claim 1, the method furthercomprising: evaluating a collision probability of the generatedidentification.
 9. The method of claim 8, wherein selecting the circuitelements further comprises selecting a first plurality of circuitelements, and wherein the generated identification number is a firstidentification number, the method further comprising: determining thatthe collision probability is higher than a threshold collisionprobability; selecting a second plurality of circuit elements based ondetermining that the collision probability is higher, wherein the secondplurality of circuit elements includes more circuit elements compared tothe first plurality of circuit elements; and generating a secondidentification number of the IC, such that the second identificationnumber has a relatively lower collision probability than the firstidentification number.
 10. A method for a computing device to generatean identification number of an integrated circuit (IC) including circuitelements, the method comprising: initiating an application of inputvectors to one or more of the circuit elements included in the IC;receiving measurement values responsive to the application of inputvectors, wherein the measurement values correspond to values measuredfor one or more attributes of the one or more circuit elements inresponse to the application of input vectors; formulating a plurality ofequations based on the corresponding measured values, wherein each ofthe plurality of equations includes one or more scaling factors of thecorresponding one or more circuit elements; solving the plurality ofequations to determine the one or more scaling factors of thecorresponding one or more circuit elements; and transforming thedetermined one or more scaling factors to generate the identificationnumber of the IC.
 11. The method of claim 10, wherein each of the one ormore attributes include one of a leakage current, a delay, a switchingpower, a parasitic capacitance, an inductance, a resistance, a gain, anoffset voltage, a threshold voltage, an operating temperature, a powerconsumption, or an idle current.
 12. The method of claim 10, whereinsolving the plurality of equations comprises solving equations thatinclude one or more terms corresponding to one or more circuit elements,and wherein each of the one or more terms includes a nominal value of anattribute of the corresponding circuit element and a scaling factor ofthe corresponding circuit element.
 13. The method of claim 10, whereinsolving the plurality of equations comprise solving equations thatfurther include a corresponding error term based at least in part on anerror in a corresponding measurement value.
 14. The method of claim 13,further comprising: formulating an optimization problem that includes anobjective function that reduces a norm of the error terms of individualequations.
 15. The method of claim 13, further comprising: solving theoptimization problem using one of linear programming, piecewise linearprogramming, non-linear programming, quadratic programming, or convexprogramming.
 16. The method of claim 10, further comprising identifyingone or more of the circuit elements as ambiguous circuit elements,wherein formulating the plurality of equations further comprisesformulating the plurality of equations such that the one or more of theambiguous circuit elements are excluded from individual equations of theplurality of equations.
 17. The method of claim 10, further comprising:causing a change in an operating condition of the IC to reduce theprecision required for the measurement values.
 18. The method of claim10, wherein transforming the determined one or more scaling factorsfurther comprises: selecting one or more of the scaling factors; mappingthe one or more selected scaling factors into corresponding binarycodes; and generating the identification number of the IC using thebinary codes.
 19. The method of claim 18, further comprising:identifying one or more bits of an indicator string corresponding to oneor more circuit elements whose scaling factors have been selected; andsetting the identified one or more bits to 1, such that the indicatorstring indicates the circuit elements whose scaling factors have beenused for generation of the identification number of the IC.
 20. Themethod of claim 18, wherein selecting one or more of the scaling factorsfurther comprises: generating a probability distribution function (PDF)of the scaling factors; partitioning an area under the PDF intoindividual segments; dividing the individual segments into a first setof segments and a second set of segments, such that the individualsegments in the first set of segments and the individual segments in thesecond set of segments are interleaved; and selecting one or morescaling factors that are in the first set of segments.
 21. The method ofclaim 20, wherein mapping comprises: assigning binary codes to theindividual segments in the first set of segments such that eachindividual segment in the first set of segments is associated with arespective one of the binary codes; and assigning binary codes to thescaling factors included in the individual segments of the first set ofsegments based on the binary codes assigned to the individual segments.22. The method of claim 10, wherein transforming the determined one ormore scaling factors further comprises: generating a probabilitydistribution function (PDF) of the scaling factors; partitioning an areaunder the PDF into individual segments, each segment havingapproximately equal area; assigning binary codes to the individualsegments such that each individual segment is associated with arespective one of the binary codes; assigning binary codes to thescaling factors included in the individual segments based on the binarycodes assigned to the individual segments; and generating theidentification number of the IC using the binary codes assigned to thescaling factors.
 23. The method of claim 10, further comprising:authenticating the IC, in response to determining the one or morescaling factors and/or generating the identification number of the IC.24. The method from claim 23, wherein authenticating the IC furthercomprises: challenging an identification of the IC by initiating anapplication of one or more input vectors to one or more of the circuitelements included in the IC; receiving response values responsive to thechallenging, wherein the response values include indication of one ormore operational characteristics of the one or more circuit elements;comparing the received response values with response values stored in adatabase external to the IC; and authenticating the IC based at least inpart on said comparing.
 25. The method from claim 23, furthercomprising: granting the IC or a user of the IC access or operationalrights to one or more services or devices, based at least in part onauthenticating the IC.
 26. The method from claim 10, further comprising:determining a schedule of data assignment to one or more circuitelements of the IC, such that a total leakage current, temperature,parasitic capacitance or speed of aging of the IC is reduced.
 27. Themethod from claim 10, further comprising: determining an operationalvoltage of the IC for a task to be executed on the IC within a durationof time such that a total leakage current, temperature, parasiticcapacitance or speed of aging of the IC is reduced, based at least inpart on the determined scaling factors of one or more circuit elements.28. An apparatus arranged to determine an identification number of anintegrated circuit (IC) including circuit elements, the apparatuscomprising: a storage medium configured to store programminginstructions; and a processor coupled to the storage medium andconfigured by the programming instructions to cause the apparatus, whenthe programming instructions are executed by the processor, to: initiatean application of input vectors to one or more of the circuit elementsincluded in the IC; receive measurement values responsive to theapplication of input vectors, wherein the measurement values correspondto values measured for one or more attributes of the one or more circuitelements in response to the application of input vectors; formulate aplurality of equations based on the corresponding measured values,wherein each of the plurality of equations includes one or more scalingfactors of the corresponding one or more circuit elements; solve theplurality of equations to determine the one or more scaling factors ofthe corresponding one or more circuit elements; and transform thedetermined one or more scaling factors to generate the identificationnumber of the IC.
 29. The apparatus of claim 28, wherein the processoris further configured by the programming instructions to cause theapparatus to transform the determined one or more scaling factors bycausing the apparatus to: select one or more of the scaling factors; mapthe one or more selected scaling factors into corresponding binarycodes; and generate the identification number of the IC using the binarycodes.